package main

import (
	"fmt"
	"math/rand"
	"time"
)


func main() {
	//练习2：求两个3*3矩阵的和并输出（数据都是int类型）
	//	解析：矩阵的和计算规则是对应元素相加：
	//	c[i][j] = a[i][j] + b[i][j]
	var a =[3][3]int{{1,2,3},{4,5,6},{7,8,9}}
	var b =[3][3]int{{1,2,3},{4,5,6},{7,8,9}}
	var c = [3][3]int{}
	fmt.Printf("%v",b)
	for index,item :=range a{
		for i:=0;i<len(a[index]);i++ {
			c[index][i] = b[index][i]+a[index][i]
			fmt.Printf("%d\n", index)
			fmt.Printf("%d\n", item)
	}
	}
	fmt.Printf("%v",c)


	//点名系统
	fmt.Println("第二题任意键点名,请按任意键")


	var name=[6]string{"1","王同学","张同学","李同学","刘同学","赵同学"}
	//切片--非从头开始--地址=关系=底层数据？？
	s2:=name[1:5]
	for {
		var b string
		fmt.Println("第二题任意键点名,请按任意键")
		fmt.Scan(&b)
		if b == "q"{
			break
		}else {
			name1 := order(s2, len(s2))
			if name1 == "false"{
				fmt.Println("点名完毕")
				break
			}
			for index,v:=range s2{
				if v == name1{
					s2 = append(s2[:index],s2[index+1:]... )
				}
			}
		}
		}

	var pwd,n string
	fmt.Println("练习四-请输入用户名\n")
	fmt.Scanf("%s",&pwd)
	fmt.Println("练习四请输入密码\n")
	fmt.Scanf("%s",&n)
	if testx(n,pwd)==true{
		fmt.Printf("-----------------true存在\n")
	}else{
		fmt.Printf("false-------------------不存在\n")
	}
}
//练习3：使用go编写随机点名系统
//	切片类型存放全班同学的名字：["史伟名","易鸽玲"]
//	按任意键，不限次数随机抽取切片中的某一个同学名字回答问题
//			 抽取到的同学就从切片中删除
//	按q退出，或者切片里面所有的同学都已近被抽到
func order (s2 []string,num int) string{
	var id int
	fmt.Printf("\n现在的名单是%v\n",s2)
	if len(s2) == 1{
		return s2[0]
	}
	if len(s2) == 0{
		return "false"
	}
	for true{
		rand.Seed(time.Now().UnixNano())
		id = int(rand.Intn(4))
		fmt.Printf("%d\n",num)
		if id<num{
		fmt.Printf("生成的数字%d\n", id)
		fmt.Printf("被点到的是 %s \n", s2[id])
		break} else{
			continue
	   }
	}
	return s2[id]
}
//练习4：验证用户名密码是否正确
func testx (a,b string) bool {
	var userList = map[string]map[string]string{
		"root":{"password":"123456", "tel":"158xxxxxxxx"},
		"admin":{"password":"123456", "tel":"158xxxxxxxx"},
		"xiaoming":{"password":"123456", "tel":"158xxxxxxxx"}}
	for n,m :=range userList{
		if n==b{
			for k,v := range m{
				if k == "password"&&v==a{
					return true
				} else{return false}
			}
		}

	}
	return false
}


